#!/bin/sh

# v0.14.2
: "${ROOTLESSKIT_COMMIT:=4cd567642273d369adaadcbadca00880552c1778}"

install_rootlesskit() {
	case "$1" in
		"dynamic")
			install_rootlesskit_dynamic
			return
			;;
		"")
			export CGO_ENABLED=0
			_install_rootlesskit
			;;
		*)
			echo 'Usage: $0 [dynamic]'
			;;
	esac
}

install_rootlesskit_dynamic() {
	export ROOTLESSKIT_LDFLAGS="-linkmode=external" install_rootlesskit
	export BUILD_MODE=${GO_BUILDMODE}
	_install_rootlesskit
}

_install_rootlesskit() (
	echo "Install rootlesskit version $ROOTLESSKIT_COMMIT"
	git clone https://github.com/rootless-containers/rootlesskit.git "$GOPATH/src/github.com/rootless-containers/rootlesskit"
	cd "$GOPATH/src/github.com/rootless-containers/rootlesskit" || exit 1
	git checkout -q "$ROOTLESSKIT_COMMIT"
	export GO111MODULE=on
	# TODO remove GOPROXY override once we updated to Go 1.14+
	# Using goproxy instead of "direct" to work around an issue in go mod
	# on Go 1.13 not working with older git versions (default version on
	# CentOS 7 is git 1.8), see https://github.com/golang/go/issues/38373
	export GOPROXY="https://proxy.golang.org"
	for f in rootlesskit rootlesskit-docker-proxy; do
		go build $BUILD_MODE -ldflags="$ROOTLESSKIT_LDFLAGS" -o "${PREFIX}/$f" github.com/rootless-containers/rootlesskit/cmd/$f
	done
)
